Cloud computing is becoming an increasingly common platform for offering database services. Cloud database service providers usually serve diversified clients through multi-tenancy resource sharing. Unlike the traditional hosting model where database service runs on dedicated nodes, cloud computing enables the tenants to be consolidated onto fewer nodes, reducing capital expenditure on infrastructure as well as operating costs on power, cooling, maintenance, and support. Cloud computing can lead to high resource utilization on the shared nodes.
Due to the changing resource requirements and unpredictable interactions, it is non-trivial for cloud database service providers to meet the service level agreements (SLAs) for the hosted tenants. One approach to overcome such a challenge is through capacity planning. For example, by analyzing historic data, one can place compatible sets of tenants onto shared nodes or can alleviate overloading conditions through live migration at the virtual machine level. However, as a solution, capacity planning has some weak points: on the one hand the tenants' workload may change over time and on the other hand, live migration may have high overhead which may further degrade performance of already congested nodes.
One widely adopted approach for preventing system from overloading is to use admission control. By using admission control, when the system is in an overloading condition, newly arrived queries are either buffered or rejected until the system condition improves. The purpose of admission control in a database system is to limit the number of concurrently running queries in the database server. One reason for admission control is that if the queries are admitted into the database server indiscriminately, the workload may saturate the database server and therefore make the performance of all running queries suffer.
Admission control methods can be categorized as those with load shedding and those without. With load shedding, when the system is overloaded, an admission control method can reject new requests in order to prevent the system from being further saturated; without load shedding, an admission control method temporarily postpones queries from entering the server, in order to keep the server at its peak throughput. Admission control with load shedding is appropriate in an e-commerce application, as queries usually have associated deadlines in query response time (e.g., useful query result has to be obtained before the browser's timeout). Therefore, instead of postponing a query only later to find it missed its deadline, a more beneficial control strategy is to reject the query upfront, because doing so leaves room for other solutions such as routing the query to a remote server.
For a service provider who offers Database as a Service (DaaS), the admission control takes place in the database layer and the users of the database (either the end customers or the applications) are treated as the clients or tenants. A common practice in traditional databases is to maintain the multiple programming level (MPL) of the database server through admission control. In a cloud database system, however, because of the diversified queries from various shared tenants, the relationship between MPL and query response time becomes highly complicated. Hence, in a cloud database system, the admission control is even more challenging because of the diversified workloads from multiple clients and because of the direct monetary consequence of missing a contracted deadline.